import java.util.ArrayList;
import java.util.List;
//给你一个单链表的头节点 head ，请你判断该链表是否为回文链表。如果是，返回 true ；否则，返回 false 。

class ListNode {
    int val;
     ListNode next;
    ListNode() {}
    ListNode(int val) { this.val = val; }
      ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 }

class Solution {
    public boolean isPalindrome(ListNode head) {
     //哈希表+双指针
    List<Integer> map=new ArrayList<>();
    ListNode p=head;
    while(p!=null){
        map.add(p.val);
        p=p.next;
    }
    int left=0,right=map.size()-1;
    while(left<right){
        if(!map.get(left).equals(map.get(right))){
            return false;
        }
        left++;
        right--;
    }
     return true;
    }
   
}

